package com.jdrx.sw.sewage.beans.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * sewage_materiel
 */
@Data
@ApiModel(value = "AiModelParamPO", description = "ai模型参数")
public class AiModelParamPO implements Serializable {
    private static final long serialVersionUID = -1206960462117924923L;

    @NotNull
    @Range(min = 1)
    @ApiModelProperty(value = "点位编码，对应规范命名", required = true)
    private String code;

    @NotEmpty
    @Length(min = 1, max = 100)
    @ApiModelProperty(value = "点位中文说明", required = true)
    private String name;

    @NotEmpty
    @Length(min = 1, max = 100)
    @ApiModelProperty(value = "计算规则：avg平均值，sum总值", required = true)
    private String calculationRule;

    @NotNull
    @ApiModelProperty(value = "时间规则：-1-水质预测值，0-最新值，1-前第1个小时，2-前第2个小时，以此类推；1D-近1天，2D近2天，以此类推", required = true)
    private String timeRule;

    @NotNull
    @ApiModelProperty(value = "模型描述", required = true)
    private String description;

    @NotNull
    @ApiModelProperty(value = "关联模型编码", required = true)
    private String modelCode;

    @NotNull
    @ApiModelProperty(value = "备注", required = true)
    private String remark;

    @NotNull
    @ApiModelProperty(value = "异常数据规则（时间规则为0时才必填）", required = true)
    private String exceptionRule;

    @NotNull
    @ApiModelProperty(value = "异常数据描述（时间规则为0时才必填）", required = true)
    private String exceptionDescribe;

    @NotNull
    @ApiModelProperty(value = "关联父模型编码", required = true)
    private String parentModelCode;
    @NotNull
    @ApiModelProperty(value = "虚拟点位编码，对应规范命名（如：平均值和总直时需要一个新命名的点位，此时必填）", required = true)
    private String fictitiousCode;
}